{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 CUDA device found, CUDA version 7.0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(0.93521214,11296800768,12079398912)"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import BIDMat.{CMat,CSMat,DMat,Dict,IDict,FMat,FND,GDMat,GMat,GIMat,GLMat,GSDMat,GSMat,\n",
    "               HMat,IMat,Image,LMat,Mat,SMat,SBMat,SDMat}\n",
    "import BIDMat.MatFunctions._\n",
    "import BIDMat.SciFunctions._\n",
    "import BIDMat.Solvers._\n",
    "import BIDMat.JPlotting._\n",
    "import BIDMach.Learner\n",
    "import BIDMach.models.{FM,GLM,KMeans,KMeansw,ICA,LDA,LDAgibbs,Model,NMF,RandomForest,SFA,SVD}\n",
    "import BIDMach.datasources.{DataSource,MatSource,FileSource,SFileSource}\n",
    "import BIDMach.mixins.{CosineSim,Perplexity,Top,L1Regularizer,L2Regularizer}\n",
    "import BIDMach.updaters.{ADAGrad,Batch,BatchNorm,IncMult,IncNorm,Telescoping}\n",
    "import BIDMach.causal.{IPTW}\n",
    "\n",
    "Mat.checkMKL\n",
    "Mat.checkCUDA\n",
    "Mat.setInline\n",
    "if (Mat.hasCUDA > 0) GPUmem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": []
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "BufferedImage@13d714ca: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 500 height = 400 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(sin(row(0->1000)*0.01))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "scala",
   "version": "2.11.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
